Credit and bank issued debit card operated system and method for controlling a prepaid card encoding/dispensing machine

ABSTRACT

A system and method for controlling and monitoring credit card transactions of a vending machine which dispenses and or encodes prepaid cards. Means are provided for reading magnetically stored information from a credit card, receiving an authorization amount for the transaction from a credit verification source which is external to the vending machine, storing the authorization amount, selecting a prepaid amount to be encoded on a prepaid card, determining whether a selected prepaid amount is below a maximum allowed transaction amount, controlling the encoding of a prepaid card in response to a selected prepaid amount, and storing transaction information corresponding to the operation of the prepaid card vending machine and the magnetic information from the credit card.

RELATED APPLICATION

This is a continuation-in-part application of the application of commonassignment herewith of inventor Brock Kolls, entitled CREDIT CARD ANDBANK ISSUED DEBIT CARD OPERATED SYSTEM AND METHOD FOR CONTROLLING ANDMONITORING ACCESS OF COMPUTER AND COPY EQUIPMENT, Ser. No. 08/381,119,filed Jan. 31, 1995, and which is a continuation-in-part application ofcommon assignment herewith of inventor Brock Kolls, entitled CREDIT CARDAND BANK ISSUED DEBIT CARD OPERATED SYSTEM AND METHOD FOR CONTROLLINGAND MONITORING ACCESS OF COMPUTER COPY EQUIPMENT, Ser. No. 08/354,207,filed Dec. 12, 1994.

FIELD OF THE INVENTION

The present invention relates to automated dispensing equipment whichdispenses products or services (hereinafter collectively referred to asvending machines) and more particularly, to devices for dispensing debitcards or vending cards which, in turn, are used to make purchases fromother vending machines such as photocopiers.

BACKGROUND OF THE INVENTION

Credit and bank issued debit cards have been in wide spread use inbusiness establishments. The majority of uses of these cards arereferred to as attended uses. Personnel of the business establishment,or attendants, are required in order to process and complete a sale ortransaction using a credit or bank issued debit card.

In the past, credit card transactions were made by imprintinginformation stamped on a credit card onto a multi part credit cardreceipt using a forced-contact device. It was a common business practiceto contact a credit card company by telephone to verify the availabilityof credit on the card to ensure that there was sufficient credit tocomplete the transaction. If sufficient credit was available, the creditcard company and or credit card processor company provided anauthorization number over the telephone which was manually printed ontothe credit card receipt.

Magnetic strip technology has largely made the forced-contact devicesunnecessary and has allowed for the expansion of credit card and bankissued debit card transactions. Using magnetic strip technology,information concerning a credit card (or bank issued debit card) owner'saccount is stored as magnetic information on a magnetic strip attachedto a credit card or bank issued debit card. By passing the magneticstrip through a magnetic card reader the information about anindividual's credit card (or bank issued debit card) account can beread. The information can then be transmitted over telephone lines tothe credit card company (or other authorization service) to obtain anauthorization for a particular credit card transaction. Imprints ofcredit card information onto a receipt using a forced-contact device isno longer necessary, as magnetic information is output to a printerwhich outputs credit card (or bank issued debit card) information (suchas the credit card account number or bank issued debit card number) andthe transaction information (such as amount, date and store wherepurchase was made) onto a receipt for the credit card owner.

Various self-service devices using credit cards and bank issued debitcards have been appearing in the marketplace. Automatic Teller Machines(ATMs) have allowed users to deposit, withdraw and transfer funds to andfrom bank accounts. Originally ATMs were only used with bank issueddebit cards. It is now possible to use credit cards for transactions,such as withdrawals, at ATMs (this may be more accurately described as aloan against an available credit line). Neither credit cards or bankissued debit cards contain information about account content. Accountcontent is stored on the computer of a credit card company or bank. Thisinformation is accessed with the credit card or bank issued debit card.

In the vending field, credit cards and bank issued debit cards can beused directly at the pumps at self-service gas stations for dispensinggasoline. Although self-service, this type of vend is still referred toas an attended vend (or attended transaction), as an operator mustalways be on duty at the gas station. Credit cards can also be used onairplanes for personal telephone calls. This use is also considered anattended transaction as flight attendants are available, as well as atelephone operator for assistance, collect calls, information, etc.

Vending machines, such as copy machines, are often used in a completelyunattended state. After normal working hours in libraries, officebuildings, post office, court houses or copy facilities, users can stilloperate a copy machine using either coins, cash or private debit cards.Private (non-bank issued) debit cards are often referred to as "storedvalue cards" or "prepaid cards" or "vending cards". Prepaid cards differfrom bank issued debit cards in that prepaid cards have a cash valueencoded on the card's magnetic strip. The prepaid card does not requirea connection to a database, as do bank issued debit cards and creditcards, to determine if a transaction is within an available credit limit(for a credit card) or within an available balance (for a bank issueddebit card). Prepaid cards have been used to solve some of the problemsassociated with coin operated vending machines.

Coin operated machines require that a user have sufficient change forthe number of copies the user is reproducing. The user may not be awarebefore arriving at the copy facility how many copies are necessary orthe cost per copy. Further, for large copy jobs, carrying a sufficientamount of change is burdensome both by the weight and space taken up bythe coins and the need to acquire the coins from a bank or otherfinancial institution. This can also pose security problems for a userlate at night in a library, for example. Although coin changers areoften found in the vicinity of coin operated vending machines, coinchangers can also run out of change causing problems during unattendeduse. There is a lack of accountability, as there is no receipt fortransactions. From an operator's perspective, problems with coinoperated vending machines include vandalism, theft, inaccuratecounting/reporting, collection and depositing.

Prepaid card operated vending machines, such as copy machines, use amagnetic card reader attached to the vending machine. To obtain aprepaid card, present systems use either an operator to carry out theencoding of the prepaid amount on the magnetic card (sometimes referredto as a "copy card") or a machine analogous to a change machine fordispensing a new prepaid card and/or encoding a new prepaid amount ontoan existing prepaid card. During unattended use, however, both of thesemeans for obtaining a prepaid card may be inoperable. In the firstinstance, an attendant is not available during unintended use to encodea purchased amount on an existing prepaid card or issue a new card. Inthe case of a prepaid card dispensing machine, sufficient change or cashmust still be carried by the user to operate such a machine.

Further, generally, both existing coin and prepaid card operated vendingmachines do not provide transaction information concerning the type oftransaction, location, duration, time and other items of informationconcerning the various transactions. This information can prove usefulto the operator of vending machines.

The primary function of the coin mechanism on a vending machine forprepaid cards is to accept standard coins and/or bills and/or makecorrect change to encode a desired prepaid amount on the card.

SUMMARY OF THE INVENTION

The present invention comprises a system and method for controlling andmonitoring credit card transactions of a vending machine which dispensesand or encodes prepaid cards. Means are provided for readingmagnetically stored information from a credit card, receiving anauthorization amount for the transaction from a credit verificationsource which is external to the vending machine, storing theauthorization amount, selecting a prepaid amount to be encoded on aprepaid card, determining whether a selected prepaid amount is below amaximum allowed transaction amount, controlling the encoding of aprepaid card in response to a selected prepaid amount, and storingtransaction information corresponding to the operation of the prepaidcard vending machine and the magnetic information from the credit card.

BRIEF DESCRIPTION OF THE FIGURES

The invention will be described by way of nonlimiting example, withreference to the attached drawings in which:

FIG. 1 shows a diagram of the present invention controlling a copymachine and interfacing with remote locations;

FIG. 2 shows a block schematic diagram of the operational aspects of thepresent invention;

FIGS. 3A and 3B show a flow diagram illustrating the operation of a mainroutine while awaiting credit card input in accordance with the presentinvention;

FIG. 4 is a flow diagram showing a subroutine for checking a system ofthe present invention;

FIG. 5 is a flow diagram showing a help message subroutine used inaccordance with the present invention;

FIG. 6 is a flow diagram showing a card reader interrupt subroutine inaccordance with the present invention;

FIG. 7 is a flow diagram showing a service subroutine for monitoringsystem performance and editing system operational parameters inaccordance with the present invention;

FIG. 8 is a flow diagram showing a routine for sending batchedtransaction(s) information in accordance with the present invention;

FIGS. 9A and 9B are flow diagrams showing a transaction subroutine inaccordance with the present invention;

FIG. 10 is a flow diagram showing a subroutine for ensuring that aproper vend has occurred and that the total number of copies is lessthan the maximum allowed in accordance with the present invention;

FIG. 11 is a flow diagram showing the general operation of the system inaccordance with the present invention;

FIG. 12 is a flow diagram showing the general operation of an additionalembodiment of the present invention; and

FIG. 13 is a diagram of a computer system in accordance with the presentinvention;

FIG. 14 is a block schematic diagram of operational aspects of thecomputer system shown in FIG. 13;

FIG. 15 is a block diagram illustrating an exemplary embodiment ofswitch control in accordance with the present invention;

FIGS. 16A, 16B and 16C are flow diagrams showing a method of generaloperation of a computer system in accordance with the present invention;

FIG. 17 is a flow diagram of a modem operation subroutine in accordancewith the present invention;

FIG. 18 is a diagram of a prepaid card encoding/dispensing system inaccordance with the present invention;

FIG. 19 is a flow diagram showing a method of operation of the prepaidcard encoding/dispensing system shown in FIG. 18.

FIG. 20 is a diagram of a computer system in accordance with the presentinvention;

FIG. 21 is a diagram of a multiple computer system in accordance withthe present invention; and

FIG. 22 is a schematic diagram of a pulse converter used in an exemplaryembodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

There is shown in FIG. 1 a system 10, which is an exemplary embodimentof the present invention. System 10 has a copy machine 28 as an exampleof a vending machine under control by vending machine control system(controller) 12. Other types of vending machines, microfiche machinesand computer operated devices for on-line searching, database searchingor printing may be used as a vending machine instead of copy machine 28.

Copy machine 28 has a control panel 30 where various copy commands canbe executed by the user. Copy button 32 is depressed for copying adocument. Many commercial copy machines used for unattended, fee-basedcopying are only used for making single copies on one size paper. It ispossible, however, that other copy functions can be selected such aschoosing different paper sizes with paper size selection button 34 orother special features such as reductions and enlargements using specialfeatures button 36. With the present invention, additional copy featurescan be tracked and charged at different rates, if appropriateconnections are made between copy machine 28 and controller 12 andappropriate programming of controller 12 is provided.

Copy machine 28 also has a control connection means 38, which may be onehalf of a connector plug for meeting with a complimentary connectorplug. Control connection means 38 is connection point at copy machine28, designed to allow for fee-based vending of copies. Many console orfull size copy machines come equipped for the addition of equipment toconvert a non-fee based copy machine to fee-based copying. On thesemodels, it is only necessary to obtain the necessary complimentaryconnector plug to fit this connector. The removal or addition of a wireharness may be involved to provide for mounting the connector plug. Ondevices other than copy machines, such as a microfilm or microfichereader, it will be necessary to make an appropriate connection tomonitor, interrupt and control the device. In the case of a microfilmreader this could involve taking control of a print button by placing asecond switch (controlled by controller 12) in series with the useroperated print button. To allow a "print", both switches must be closed.In the case of a computer for on-line access, this could be a connectionto provide a keyboard interrupt so access to the computer cannot takeplace until an appropriate keyboard control signal is provided.

Copier 28 is connected to controller 12 via electrical connection line26. Controller 12 contains a text display screen 14 (LCD displayscreen), a magnetic card reader 16, a keypad 18, a printer 20 (shownwith a receipt 24) and a speaker 22. Although shown separate from copier28, controller 12 can be mounted on or near copier 28 as dictated by thecopier service provider. Controller 12 is used to determine an availablecredit limit for copying (vending) for a given user on copy machine 28,as well as allowing/disallowing copier use. Alternatively, a bank issueddebit card (such as a Money Access Center card, "MAC" card) can be usedinstead of a credit card. For purposes of this description, "magneticcard" will be the generic designation for a credit card or a bank issueddebit card or a smart card.

A magnetic card (not shown) is passed through card reader 16 and theinformation from the magnetic strip of the magnetic card is read by cardreader 16. Certain portions of or all of this magnetic information istransmitted over a communications line 40 to a remote creditverification location 46. Communication line 40 can take the form of atelephone line, dedicated telephone line or cellular communication line.The type of communication line required will depend upon the locationand use of a particular vending machine. Appropriate communicationhardware for the connection line being used, such as a cellulartelephone, will be necessary to establish communication and will beunderstood by those skilled in the art.

Along with the magnetic card information, a predetermined dollar amountis transmitted to remote credit location 46. For example, a $10 amountmay be transmitted, requesting an authorization or approval for copyingup to $10. In another embodiment, a user may select the dollar amountfor authorization through keyboard 18. A grant or deny signal is thentransmitted back over communication line 40 to controller 12 from remotecredit verification location 46. Remote credit verification location 46may be a credit card agency or processor in the case of a credit card, abank in the case of a bank ATM card or a private organization in thecase of a privately provided debit card.

Once controller 12 receives the return signal, controller 12 allowscopying up to the authorized amount if a grant signal which authorizes avend transaction, along with an available credit limit has been providedand refuses copying if a deny signal has been provided. Appropriateinstructions to the user are provided by display 14.

Audible information (voice messages) can also be provided via speaker22. An example of voice message is a reminder, repeated after a giventime period, that a copy should be made or the transaction will beterminated. This could help a user from forgetting that there is anauthorized credit still left on the machine which could be used byanother if the user walks away. The problem of "forgetting" is alsoaddressed by a timeout feature which terminates a transaction if noaction is taken within a preset period of time. The allowable timebetween copies for a given transaction authorization can be set by thecopy service provider.

Other audible or graphic messages, including instructions, pricing andadvertising, can be provided as set up by the copy service provider.

A keypad 18 is also provided for entering key code information. A keypadwith one or more keys can be provided, depending on the type of userinput which may be required. In the case of a bank issued debit card,such as an ATM card, a personal identification number (PIN) may berequired. In an exemplary embodiment of the past invention three keysare provided--a SERVICE key, a HELP key and an END key.

Controller 12 is shown connected to three types of remote locationsthrough communication line 40. Remote credit verification location 46has already been discussed. Remote service location 42 may be the sameas or separate than remote credit verification location 46. Remoteservice location 42 receives and sends information concerning theoperation of copy machine 28 and controller 12. Information such asadditional copy paper or receipt paper required, or malfunctions may becommunicated from copy machine 28 and controller 12 to remote servicelocation 42.

Remote service location 42 may transmit a sleep signal or anout-of-order signal if it detects a malfunction in either device. Remoteservice location 42 may also be used to monitor when equipment is inuse. Remote location 44 can also be the same as one or more of the otherremote locations. It may have a function of receiving transactioninformation so that the types of use, rates of use and times of use canbe monitored and analyzed to enhance copy service. With thisinformation, deliveries of paper, toner and other supplies may be timedto enhance productivity of the vending machine and those servicing it.In the case of a computer system 400, shown in FIG. 13, remote location44 can be an on-line service or other location for sending/receivingdata.

In the embodiment of system 10 shown in FIG. 1, only a credit cardreader 16 is shown. An alternate embodiment may use a coin mechanism orbill acceptor mechanism or prepaid card to pay for the copy vending. Insuch an embodiment, the transaction tracking and service capabilities ofthe present invention are still provided.

When a user has completed all of the user's copying, the number oftransactions and cost per transaction are stored in a memory device ofcontroller 12. This information, along with a predeterminedtransaction/cost information with other users will be settled by batchprocessing at a later time. The predetermined number of transactions maybe related to the amount of memory, or requirements of the credit cardcompany/processor (such as every 100 transactions). The batch settlementcan also be related to a time period or combination of time period andnumber of transactions. Batch processing of transaction information isan efficient use of time, as a separate call is not required after everyuser's copying is complete. The operation of batch processing isdiscussed in more detail below. In an exemplary embodiment, batchsettlement occurs daily.

Although not illustrated in system 10 shown in FIG. 1, it also possibleto have multiple vending machines, such copy machines 28, attached to asingle controller 12.

There is shown in FIG. 2 a block schematic diagram of the logic andcommunications circuits contained within controller 12.

Controller 12 contains a microprocessor 50 such as the Z0868108PSC byZilog. Microprocessor 50 controls the input output (I/O) and memoryfunctions of controller 12. Microprocessor 50 has a memory 52 forstoring program information as well as transaction information. Memory52 is shown consisting of a Read Only Memory (ROM) 54 and a RandomAccess Memory (RAM) 56. An example RAM is the DS1486 manufactured byDallas Semiconductor. An example ROM is the 27C256-12/P by Microchip.This ROM chip is a 256K ROM. Microprocessor 50 may also be controlled byan instruction set stored in an Electrically Erasable Read Only Memory(EEROM) such as the 93C56-P serial EEROM also made by Microchip. Othertypes of memory including removable memory such as disks or removablecards may be used and will be understood by those skilled in the art.

Microprocessor 50 controls input and output through serialcommunications block 58 and I/O block 66.

Ser. communication block 58 encompasses a communication section 60 forcommunicating with a modem (not shown); a communication block 64 forcommunicating with a card reader such as card reader 16; and acommunication port for communication with a receipt printer such asreceipt printer 20. In an exemplary embodiment, the on board modem usedfor communicating with remote locations is the CH1785 PCB mount modem byCermetek. This modem provides communication at 2400 baud. Controller 12also contains a 6252SA/6250SA/6272SA by Xico as card reader 16 and areceipt printer 20 made by Citizen. Ser. communication ports arecommonly referred to as "COM" ports. Thus, communication ports 60, 62and 64 may be referred to as COM1, COM2 and COM3 respectively. Thenecessary circuitry and print out connectors for the modem, card readingand receipt printing functions are well known. In an exemplaryembodiment of the present invention, and RS232 output is provided by theADM235LJN integrated circuit by Analog Devices.

Controller 12 also has an optional speech processor 76. Speech processor76 provides synthesized speech as a source of output through speaker 22.In this way, text information can be provided audibly as well asgraphically. Speech is provided through the MSM6295GSK speech controllermanufactured by OKI. Whether or not speech processors are provided tothe user is optional. This feature can also be remotely activated andmodified from a remote location such as remote service location 42. Ifspeech is provided, a volume control mechanism and appropriateamplification and preamplification may be provided.

Speech processor 76 is operated by receiving a control signal from CPU75. CPU 75 is a Microchip PIC16C54-H-HS/P. CPU 75 receives enabling andmenu selection data from microprocessor 50. Based on the enabling andmenu data received from microprocessor 50, CPU 77 starts speechprocessor 76. CPU 70 provides speech processor 76 with control signalsand instruct speech processor 76 to play particular prerecorded messageaccessed from memory 79. Memory 79 is a ROM in an exemplary embodimentof the present invention. Memory 79 contains all of the prerecordedspeech data used by speech processor 76. Speech data from memory 79 isconverted to an analog signal via digital to analog converter in speechprocessor 76. The converted analog signal is fed to low pass filternetwork 80. Low pass filter 80 has a corner frequency of 4 khz in anexemplary embodiment of the present invention. The filtered signal isfed from 80 to audio amplifier 78. Audio amplifier is a Sanyo LA4460 inan exemplary embodiment of the present invention. Finally, the amplifiedanalog signal is passed to speaker 22. An additional embodiment of thepresent invention an additional speaker is provided for non-speechoutput such as "BEEP" tones.

Controller 12 can be used to interface with a vending machine, such as aconsole copy machine 28 by identifying the pulse widths and amplitude ofa copy enable signal. For example on the Minolta EP 1080 the Omron relayis inactive (off) and the output monitoring line is inactive (+24 volts)prior to a vend (copy) taking place. The transition from a low signal (0volts) to a high signal (24 volts) is counted as one copy. Controller 12monitors the line activity (in this case voltages) over a period oftime. When the readings during this monitoring period agree with thetransaction that is being requested, controller 12 stores the signalinformation in memory.

If the readings do not agree with the transaction that is beingrequested, the time period over which the control signal is monitored isincreased or decreased by a predetermined increment and a new reading istaken place and compared to the transaction being requested. Thisprocess is repeated until agreement between the readings and the desiredtransaction is achieved.

In an exemplary embodiment, an operator works interactively withcontroller 12, requesting a particular transaction (such as a single 81/2"×11" copy) and indicating to controller 12 through keypad 18 whetherthe reading of controller 12 (as shown through display 14) agrees withthe requested transaction.

There is shown in FIGS. 3A and 3B flow diagrams showing a main routinewhich checks for system errors, and whether it is time to communicatewith a remote location, while waiting for a user to pass a magnetic cardthrough magnetic card reader 16 (or deposit coins or currency if anothertype of payment means is provided).

Processing begins by entering block 82 where initial conditions for eachoutput port and each input/output device are set. As previouslydescribed, the exemplary embodiment of the present invention uses serialports for serially communicating with peripheral devices.

Processing then continues to block 84 where the main routine is started.In block 86 magnetic card reader 16 is reset. In block 88 a test takesplace to determine whether the maximum number of transactions has beenreached.

As an exemplary embodiment of the present invention processestransactions as a batch, it has a maximum number of transactions (basedon the RAM size) which can be stored in its memory. Accordingly, when apredetermined maximum number of transactions is reached, controller 12will not take anymore magnetic card inputs and will prepare to forwardthe multiple transaction information as a batch job over communicationline 40 to a remote location.

If the determination in block 88 is "yes", processing goes to block 90where the call home flag is set. The call home flag designates that itis time to call the remote location for batch processing. If the maximumnumber of transactions is not reached, processing moves to block 92where it is determined if the call home flag has been set. If the flaghas been set, a test is conducted to determine whether there has been adelay before the call home timer has expired. The call home flag can beset at any time in which system 10 is in operation. Controller 12 waitsto place a call to a designated remote location ("home"), however, untila predetermined period of inactivity occurs. When the period ofinactivity is exceeded, the call is placed. Other variables may be usedto determine when to make a call. If the call home flag has been set,processing moves to system subroutine 200 which is shown in FIG. 8. Ifthe call home flag has not been set, processing continues to block 94,where a determination is made as to whether a predetermined number ofdays between calls to the remote location has expired. If thepredetermined number of days between calls to the remote location hasexpired, processing moves to block 96 where the correct time to call theremote location is checked.

If it is presently an allowable time to call the remote location, thecall home flag is set in block 98 (the call home flag is cleared after asuccessful call is made). Processing then moves to block 100 (also on anegative condition from the determination made in blocks 94 and 96)where a check for certain system errors takes place. Examples of somesystem errors include printer out of paper, memory full and copierproblems. If a system error has occurred, processing again moves to thesystem subroutine 200 shown in FIG. 8. If no system errors haveoccurred, processing continues to block 102 where a test is made todetermine whether the out of service flag has been set. If the out ofservice flag has been set, processing moves to block 104 where an out ofservice message is displayed on display 14. Processing then moves backto block 84 and the main routine is once again started.

If the determination in block 102 is negative, processing moves to block106 shown in FIG. 3B. In block 106 a title and logo are displayed ondisplay The title and logo are stored in one of the memory chips asASCII characters to provide text and/or images. Processing next moves toCheck System subroutine 120 shown in FIG. 4 to check the system. Afterreturning from Check System Subroutine 120, processing moves to block108 where it is determined whether card data has been obtained, frommagnetic card reader 16. If magnetic card data has been obtainedprocessing moves to Transaction Subroutine 220 to process thetransaction. If no magnetic card data has been obtained, processingcontinues to block 110 where a first message is displayed on LCD display14. In an exemplary embodiment, Message 1 provides identificationinformation: Line 1--"CREDIT CARD COPY EXPRESSTM™"; Line 2--"USATechnologies, INC.".

While the first message is being displayed, a loop through check systemsubroutine 120 and determination block 108 and block 110 continues. Asimilar routine begins as processing move towards block 112 and block114. Here, a second message is displayed on display 14. The secondmessage provides operation information for the user: Line 1--"PRESSHELP"; Line 2--"FOR INSTRUCTIONS PRESS HELP." Processing continues toloop through Check System Subroutine 120 and determination block 112 andmessage display block 114 until the entire text of the second messagehas been displayed.

A similar process takes place as processing B moves to block 116 anddisplay block 118. Here, a third message is displayed. The third messageprovides instructions for using a magnetic card: Line 1--"SWIPE CARD";Line 2--"TO MAKE COPIES, SWIPE A VALID CREDIT CARD". and the processingloop consisting of Check System Subroutine 120, determination block 116and message three display block 118 is carried out. If no magnetic carddate is determined in block 116 and message three has completed itsdisplay in block 118, processing returns to block 86 shown in FIG. 3A.

There is shown in FIG. 4 a flow diagram of the Check System Subroutine.Processing begins by entering block 122 where a determination is madewhether the HELP button has been depressed. If the HELP button has beendepressed, processing moves to the HELP Message Subroutine 140 shown inFIG. 5. If the HELP button has not been depressed, processing moves toblock 124 where it is determined whether the SERVICE button has beendepressed. If the SERVICE button has been depressed, processing moves toSystem Service Subroutine 170 shown in FIG. 7. If the SERVICE button hasnot been depressed, processing moves to flow diagram 160 shown in FIG. 6to determine whether a magnetic card has passed through magnetic cardreader 16.

In block 126 it is determined whether a magnetic card has passed throughmagnetic card reader 16. If yes, processing moves to block 128 where thecorrectness of the magnetic card data is tested. If the data isacceptable, processing is moved to block 132 where the magnetic carddata is saved in memory and the card read flag is set. If the card datais not acceptable, processing moves to block 134 where an error messageis displayed on display 14. Following the display of the error message,the routine is exited.

There shown in FIG. 5, Help Message Subroutine 140. In an exemplaryembodiment, this routine plays a prerecorded audio (voice) message whencalled. It also cycles through three informative help messages. Eithercompleting the three messages or detection of a magnetic card inmagnetic card reader 16 forces an exit out of Help Message Subroutine140. Pressing a HELP button in keypad 18 will start this routine fromthe beginning.

Help Message Subroutine 140 begins by entering block 142 where the audiospeech message is started. Audio speech is an option which can beselected by the copy service provider. It can also be provided or setfrom remote location. Processing next enters Check System Subroutine 120shown in FIG. 4. Processing then moves to decision block 144 where it isdetermined whether a magnetic card has been passed through magnetic cardreader 16. If a magnetic card is detected, processing moves toTransaction Subroutine 220 shown in FIGS. 9A and 9B. If a magnetic cardhas not been detected, processing moves to block 146 where the firsthelp message is displayed. Processing continues to loop through CheckSystem Subroutine 120, determination block 144 and message display block146 until either a magnetic card is detected or the first message hasbeen fully displayed. Processing then moves back to Check SystemSubroutine 120 and then to decision block 148. Similar to the CheckSystem Subroutine 120, decision block 144 and display block 146 loopabove, a similar loop takes place through Check System Subroutine 120,decision block 148 and display block 150 with respect to the secondmessage. Finally, a third message loop consisting of Check SystemSubroutine 120, decision block 152 and message display block 154 takesplace. If by the end of the third message a magnetic card is notdetected, the subroutine is exited.

In an exemplary embodiment of the present invention, the following HELPmessages are provided.

    ______________________________________                                        Message 1:                                                                            Line 1: "SWIPE CARD"                                                          Line 2: "SWIPE CREDIT CARD FROM                                                       RIGHT TO LEFT, MAGNETIC                                                       STRIPE FORWARD"                                               Message 2:                                                                            Line 1: "MAKE COPIES"                                                         Line 2: "UPON RECEIVING                                                               AUTHORIZATION,                                                                MAKE ALL YOUR COPIES"                                         Message 3:                                                                            Line 1: "PRESS END"                                                                   "TO END COPYING, PRESS                                                        `END` AND TAKE                                                                RECEIPT".                                                     ______________________________________                                    

There is shown in FIG. 6, a flow diagram of Magnetic Card DetectionSubroutine 160. This routine polls card reader 16 for an interruptsignal. If an interrupt signal is detected, data is transferred frommagnetic card reader 16 to microprocessor 50. In an exemplaryembodiment, a serial data link between magnetic card reader 16 andmicroprocessor 50 is used. This data is held in a scratch pad RAM buffersuch as RAM 56.

This routine begins by entering block 162 where the magnetic card reader16 data transfers are enabled. In block 164 a test in undertaken todetermine if an interrupt is pending. If an interrupt is pending,processing moves to block 166 where magnetic card data is obtained via aserial data link 64 and saved in RAM memory 56. Processing then moves toblock 168 where the data transfer from magnetic card reader 16 isdisabled. When complete, this routine is exited.

There is shown in FIG. 7, Service Subroutine 170. The routine allows auser to view and change various service related fields. These fields mayinclude the cumulative total of copies which have been made on thedevice (such as copier 28), the phone number(s) of remote location(s),controller 12/copier 28 ID number(s) and pulse delay number and otherfields tailored to specific site equipment and conditions. The editprocess involves using the HELP and END button located on keypad 18 tochange the field information and move a cursor displayed on LCD display

Processing begins by entering block 172 where the total number of copiesmade on copy machine 28 are displayed. Processing then continues toblock 174 where a delay is effectuated until a SERVICE button is pressedor a time-out occurs. If a time-out occurs, the routine is exited and ahardware reset is generated in block 176. If the service button ispressed, processing moves to block 180 where a remote location phonenumber is displayed. If a time-out occurs, the routine is exited and ahardware reset is generated. If a service button is pressed, processingmoves to block 182 where the copier ID number is displayed. At thistime, the service operator can also edit the copier ID number. If atime-out occurs, processing moves to block 176 where the routine isexited. If the service button is pressed, processing moves to block 184where the pulse window delay count is displayed. The service operatorcan also edit the pulse window delay count at this time. Again, if atime-out occurs, processing moves to block 176 where the routine isexited. If the service button is pressed, processing moves to block 186where the call remote operator message is displayed. In an exemplaryembodiment, a remote operator can be called by pressing the HELP and ENDbuttons simultaneously. After block 186, processing moves to block 188where the previous credit card transactions are settled and processedvia modem if necessary. From block 190, Service Subroutine 170 isexited.

There is shown in FIG. 8 System Service Subroutine 200. This routinesends 100% of the transactions data stored in memory. If a predeterminedamount of credit card transactions require settlement, and controller 12is configured to batch process transaction settlement data directly to aparticular remote location (such as remote location 44), batchprocessing is accomplished first. Following the batch processing, a callis placed to remote service location 42. In an exemplary embodiment, apredetermined minimum amount of credit card transactions is used in thedetermination.

Processing begins by entering block 202 where a determination of howmany credit card transactions are pending settlement. Processing thenmoves to block 204 where it is determined whether the amount of batchtransactions waiting for settlement meet a predetermined batch size(such as a minimum batch size). If predetermined minimum batch size isnot met, processing moves to block 210 where a call is made to remoteservice location 42. If the determination made in block 204 is yes,processing moves to block 206 where it is determined whether a flag hasbeen enabled for sending the batch transaction settlement data. If theflag has not been set, processing moves to block 210 and a call isplaced directly to remote service location 42. If the flag has beenenabled processing moves to block 208 and the transaction settlementdata is sent via modem to a remote location 44. Processing then moves toblock 210. Following block 210, processing moves to block 212 wherecontroller 12 transmits and receives data including configuration data,miscellaneous status and credit card transaction information via modemto remote service location 42.

There is shown in FIG. 9A Transaction Subroutine 220. This routineprocesses the magnetic card data. It also enables/disables a copier 28for vending as required and terminates a transaction by updating memoryvariables and printing a receipt 24 on receipt printer 20.

Transaction Subroutine 220 begins by entering decision block 222 whereit is determined whether a magnetic card read on magnetic card reader 16is a valid accepted card type. If not, a message--"THAT CARD TYPE IS NOTACCEPTED", is displayed on display 14. If the speech option is beingused, the message is also played through speaker 22. Transactionsubroutine 220 is then exited. If a valid card type is detected,processing moves to block 226 where it is determined whether receiptprinter 20 is operating. If not, the message--"SORRY UNABLE TO PRINTRECEIPT SWIPE CARD AGAIN IF YOU DO NOT NEED A RECEIPT", is displayed ondisplay 14. If the speech option is being used, the message is alsoplayed from speaker 22.

From block 228, processing moves to block 232 where it is determinedwhether the user passed a magnetic card through magnetic card reader 16.If no card is detected, Transaction Subroutine 220 is exited. If themagnetic card is detected, processing moves to block 230. Processingalso moves to block 230 following a positive determination regardingoperation of receipt printer 20. In block 230 it is determined whether acredit card or free vend card was read. If a credit card was read, acredit card verification takes place by contacting remote creditverification service 46 over a communication line 40. In block 238 it isdetermined whether the card is valid. This entails receiving anauthorization signal from remote credit verification service 46. If afree vend card number was detected in block 230, processing moves toblock 236. If a valid card is not determined in block 238, processingmoves to block 242 where a message--"SORRY UNABLE TO AUTHORIZE CARD", isdisplayed on display 14. If the speech option is being used, thismessage is also output on speaker 22. Following block 242 TransactionSubroutine 220 is exited. If a valid card is detected in block 238,copier 28 is enabled in block 236.

Processing then moves to block 240 where it is determined whether a vend(copy) occurred. If yes, processing moves to Vend Copy Subroutine 270and back to block 240. If a vend did not occur, processing moves toblock 248 where it is determined whether a predetermined time-out hasoccurred. In an exemplary embodiment, a 40-second time period is used asthe predetermined amount of time. If a 40-second time-out has notoccurred, processing moves to block 251 in FIG. 9B. If a 40-secondtime-out has occurred, processing moves to block 246 and amessage--"YOUR TRANSACTION WILL AUTOMATICALLY END IN 15 SECONDS PRESS`END` TO END YOUR TRANSACTION NOW PRESS `HELP` FROM MORE TIME" isdisplayed on display 14. If the speech option is being used, the messageis output through speaker 22. This is an audible reminder so that a userdoes not leave an enabled vending machine active.

If the 40-second time-out did not occur then processing moves to block251 shown in FIG. 9B, a determination is made in block 251 regardingwhether the user has pressed the help button. If a HELP button has beenpressed, processing moves to block 250 where the time-out counter isreset. Processing then re-enters block 240 and it is again determinedwhether a vend has occurred. If the HELP button was not pressed,processing moves to decision block 252 where it is determined whetherthe 60-second time-out has occurred. If yes, processing moves to block256. If no, processing moves to block 258 where it is determined whetherthe user has pressed the END button. If the END button has not beenpressed, processing again returns to block 240 to determine whether avend has occurred. If either determination block 252 or block 258 is inthe affirmative, processing moves to block 256 where a delay iseffectuated to allow any last copies to be output and counted.Processing then moves to block 260 where the transaction record storedin memory is updated and the total number of copies, the total number ofsales, the time, the date and any other information preset by the copyservice operator is recorded. Processing then moves to block 262 where areceipt 24 is printed on receipt printer 20. Following block 262Transaction Subroutine 220 is exited and a hardware reset occurs toready controller 12 and copier 28 for the next user.

There shown in FIG. 10 Vend Copy Subroutine 270. This subroutineperforms a delay to ensure accurate copy pulse counting and determiningif preset conditions (such as number of copies) have been reached. If apreset number of conditions has been reached, the transaction isterminated. As previously discussed, copier 28 copies based on supplyinga COPY OK enable signal. Counting pulses allows controller 12 to controland monitor copier 28 output.

Vend Copy Subroutine 270 begins by entering block 272 where processingawaits any copy pulse delays to expire. Processing then moves to block274 where the transaction record is updated; total copies are adjusted,total sales and other miscellaneous memory variables are updated.Processing then moves to block 276 where it is determined if the maximumallowed copies for the magnetic card being used has been made. If yes,processing moves to block 256 shown in FIG. 9B. If not, processing movesto block 278 where the LCD showing the number of copies and the time-outtimer is reset. Following block 278 then copy subroutine 270 is exited.

As an example of operation, a VISA card may be used as the magnetic cardto purchase copies on a Minolta EP 1080 copier (copier 28). A userpasses the VISA card (swipes) through card reader 16. Track 2 of themultiple tracks on the credit card is read and serially transmits 37bytes of data from the magnetic card reader to CPU 50. Controller 12then takes the modem off hook and dials remote credit verificationlocation 46. A $10 amount is transmitted from controller 12 to remotecredit verification location 46 over telephone lines 40.

Remote credit verification location 46 verifies that the credit cardaccount is valid and that the requested authorization amount isavailable. This amount of credit is reserved by the credit cardprocessor according to its own terms and government regulations(typically several days).

When a successful authorization has taken place, remote creditverification location 46 transmits an authorization code (approval code)granting the authorizing the transaction. The approval code and creditcard data are then stored in RAM 56. The modem is taken off hook, endingthe communication.

The user is then prompted through display 14 and/or speaker 22 to beginmaking copies. The Omron relay within controller 12 is activated,enabling the vend circuit. On the EP 1080 the blue/green wire pair inthe coin acceptor plug are connected to each other. If remote creditverification location returns any message other than an authorizationcode, the communication is also terminated and the user is prompted thatthe card can not be processed at this time.

While enabled, the user can make copies and use any of the copierfeatures. During a copy cycle, the output monitoring line is toggled low(+0 volts) and returned high (+24 volts). In the EP 1080, the red/bluepair of wires in the coin acceptor plug provide the output pulses. Thered wire in the coin acceptor plug provides a +24 volt reference voltageand the blue wire transitions to provide the negative output pulse. Thislogic transition or pulse is detected by controller 12 on control line26 and counted as one copy.

Next, controller 12 checks to see if the maximum allowed number ofcopies per authorization amount has been reached. If the maximum hasbeen reached or no copies have been made in the last 60 seconds, thetransaction is terminated. Terminating a transaction involves saving thetransaction information in RAM (which can include date, time, totalcopies, total sales, etc.), prompting the user that the transaction iscomplete and printing a receipt. The Omron relay is deactivated andcopier 28 taken out of the vend mode.

On a daily basis (or other period of time), a phone call is placed to aremote location 44 which is designated to receive batch settlementinformation. When a communication link is established and appropriatesecurity, if any, cleared, card data, approval codes and transactionamounts are transmitted. This upload is a batch settlement. When thebatch settlement is complete, a settlement approval code is received bycontroller 12 from remote location 44. The communication link is thenterminated.

When the batch has been settled, a telephone call is placed to remoteservice location 42 which is the copy service operator. After acommunication link is established, any system error messages,miscellaneous transaction information (such as dates, times, types oftransactions, etc.) and batch settlement information (including thesettlement approval code) is transmitted from controller 12 to remoteservice location 42. Remote service location 42 then transmits anacknowledgement signal to controller 12. The communication link is thenterminated and memory cleared. System 10 is then ready for vending.

FIG. 11 is a flow diagram 280 showing general operation of one aspect ofthe present invention. In block 282 controller 12 is connected to outputcontrol line 26 of copier 28. Copier 28 is an exemplary embodiment of avending machine which can be operated in accordance with the presentinvention. In block 284, the control signals which control copier 28 areread over a first time period. The first time period is preset forcontroller 12. Interfacing with a copier 28 or other vending machine isan itterative process of reading control signals comparing to a storedlist in memory until a match is made. In block 286 copier responses aredetermined to compare to the control signals. This may be doneinteractively with an operator. As the operator depresses the copybutton, controller reads the control signals at switch 38 put out bycopier 28. When controller 12 identified a control signal indicating acopy is made, controller 12 displays this information to the operatorthrough display 14.

In block 288, the control signals for the particular copier being usedare stored. In an alternative embodiment, a pointer can point to thecontrol signals already stored in memory for the particular copier beingused. In this case, the location information (pointer) is stored.Finally, in block 290 the stored control signals are read in order tooperate copier 28.

There is shown in FIG. 12 flow diagram 300 showing another aspect of thepresent invention.

In block 302 magnetic card information such as information encoded on acredit card is read. As previously discussed, other types of magneticcard information can be read, depending upon the type of magnetic cardused. In block 304 an authorization amount for a particular transactionis obtained. In the case of copier 28 an authorization (approval) for apredetermined amount of copying is obtained. In an alternativeembodiment, a user may enter the amount of credit the user desires.

In block 306, the authorization amount or approval obtained in block 304is stored in memory. In block 308 the copy machine is operated followingthe storage of an authorization amount from block 306. Finally, in block310 following the completion of the copy transaction, the transactioninformation is stored in memory.

There is shown in FIG. 13 an exemplary computer system 400 in accordancewith the present invention. Computer system 400 includes a computer 402,such as a personal computer ("PC") running on an X86, Pentium™ orsimilar microprocessor. PC 402 is shown with a disk drive 404 and aCD-ROM drive 406. Other drive sizes or types may also be included in PC402. PC 402 is also connected to a monitor 408. PC 402 is also shownconnected to controller 12.

Controller 12 used in computer system 400 is similar in function tocontroller 12 used in system 10. Controller 12 includes a receiptprinter 20 for printing receipts 24, speaker 22 for audio output, cardreader 16 for input of magnetic card data from a credit card or debitcard and text display screen 14 for displaying text. Controller 12 alsoincludes a keypad 18 which may include a greater/lesser number of keysthan keypad 18 shown in system 10. For example, a "MORE TIME"key 412 maybe included in controller 12 used in computer system 400 so that a usercould close out or finish the application being run or on-line servicewith which the user is connected.

For input and output, PC 402 may be connected to one or more peripheraldevices. An example of peripheral devices are printer 414, color printer416 scanner 418 and modem 420. Modem 420, although illustrated as anexternal peripheral device, maybe internal to controller 12 and/or PC402. Controller 12 contains a microprocessor 50 similar in function tomicroprocessor 50 shown in FIG. 2. Because controller 12 in computersystem 400 is required to control several peripheral devices,microprocessor 50 shown in FIG. 14 is shown with more control optionsthan microprocessor 50 controlling a copier 28 as shown in FIG. 2.

For example, in order to control PC 402, microprocessor 50 controls akeyboard/printer enable/disable switch 422. By regulating access tokeyboard 410, access to PC 402 is effectively regulated. The same holdstrue for regulation of printer use and use of other peripheral devices.For the peripheral devices, such as printer 414, regulation of use canbe accomplished by several methods. One method is taking the printeroff-line. Another method is blocking or breaking the flow of data sentto this printer. Still another means of regulation is to intercept thepulse packet used to initiate printing or scanning in printers 414, 416or scanner 418, respectively. The pulse packet is an electrical signalhaving a pulse duration corresponding to initiating a single print. Bycounting the pulses over a certain time, the number of prints/scans andsize of paper can be determined. Counting pulses can be accomplished byusing a pulse counter such as pulse counter 125 shown in FIG. 14.

This method of control operates similar to the counting of pulses insystem 10 for copy machine 28. By counting the number of pulses,microprocessor 50 can determine the number of pages being printed.

Regulation of use can also be accomplished by controlling the powergoing to the device. Although not shown in the figures, this can beaccomplished by a programmable or switchable AC power station.

Microprocessor 50 is also shown controlling RS232 serial connection 426.RS232 connection 426 is an example of a data communication connection.Other interfaces, such as a parallel interface, or a network interfacecould be substituted for RS232 serial connection 426. Data communicationconnection 426 is used for communication with a modem such as modem 420.Modem 420 is used for two functions in this exemplary embodiment. It isused to contact remote credit verification location 46 as well as tocontact a remote location for data communication. One example of such aremote location is an on-line service. Instead of contacting an on-lineservice, modem 420 can be used to send and receive documents between twolocations, send and receive facsimile transmissions or other modem uses.The remaining connections to microprocessor 50 operate in a similarfashion to those described with respect to FIG. 2.

EEPROM 428 is an Electrically Erasable Read Only Memory. It is used tostore information data and does not require power to retain data. Piezobuzzer 425 is used to provide audio "beeps" as attention signals to auser.

There shown in FIG. 15 a block diagram of an example control arrangementfor PC 402 and modem 420. In FIG. 15 a switching circuit 430 is providedwhich is controlled by microprocessor 50. When modem communication isallowed, microprocessor 50 sends signals to switching circuit 430connecting modem 420 to PC 402 through serial connection 424. When notallowed, modem 420 is removed (disconnected) from the circuit connectedto PC 402. In either case, microprocessor 50 is free to translate andreceive data signals over modem 420 via a direct connection to modem420. In an exemplary embodiment, modem 420 is built directly intocontroller 12. Modem 420 could also be extended to controller 12 as willbe understood by those skilled in the art.

There is shown in FIG. 16A, 16B and 16C a transaction subroutine 440.Transaction subroutine 440 is used to control computer system 400 via acredit or debit card. Processing begins by entering decision block 42where it is determined whether the magnetic card data from a credit ordebit card passed through card reader 16 is an acceptable card type. Anegative response occurs if a non-accepted credit card is passed throughmagnetic card reader 16. If negative, processing moves to block 44 whichdisplays a message that card type not accepted on display 14. If speechis enabled, an audio output similar to the above message is providedthrough speaker 22. From block 44, transaction subroutine 440 is exited.

If a valid magnetic card type is read by magnetic card reader 16,processing moves to decision block 446 where it is determined whetherreceipt printer 20 is working. If receipt printer 20 is not working,processing moves to block 448 where the user is asked to swipe themagnetic card through a magnetic card reader 16 for a second time if theuser does not require a receipt. A similar instructional audio messagecan be provided through speaker 22 if speech is enabled. From block 448,processing moves to decision block 450 where it is determined whetherthe user swiped the magnetic card a second time through magnetic cardreader 16. If not, transaction subroutine 440 is exited at block 460. Ifa second swipe has been detected, processing moves to decision block462. Processing also moves to decision block 462 if a positivedetermination is made in block 446.

In block 462, a determination is made as to whether the magnetic cardtype is a credit/debit card or a free-vend card. A free-vend card can beprovided to allow no-charge use to particular users such as personnel ofa computer center where a computer system 400 is located. Users with afree-vend card are allowed to use and operate computer system 400 in apredetermined manner. This may include limited use of peripheral devicesor full use of peripheral devices.

If the determination in block 462 is that a free-vend card has beenpassed through magnetic card reader 16, processing moves to block 466where PC 402 and the allowed peripheral devices are enabled. Enabling PC402 may involve allowing keyboard operation. It may also involveproviding AC power as was described for regulating peripheral devices.

If the determination in block 462 is that a credit/debit card has beenpassed through magnetic card reader 16, processing moves to block 464where the magnetic card is verified with remote credit verificationlocation 46 via modem 420. Processing then moves to block 468 where itis determined if the magnetic card is valid.

If the card is not valid, processing moves to block 474 where a textmessage is displayed advising the user that it is unable to process themagnetic card, thus denying access to operate computer system 400. Ifspeech is enabled, a similar message is provided over speaker 22. Fromblock 474, transaction subroutine 440 is exited. If the magnetic card isvalid, processing moves to block 466 where the PC 402 and the peripheraldevices are enabled. Also in block 466, a timer is started to track thetime a user is working on PC 400. This would allow an optional charge tobe levied for the computer time. The method of charging depends upon theoperator of PC system 400. One way of charging for time is on a perminute basis. A predetermined authorization amount is obtained duringcredit/debit card verification. A user is then charged on a per minutebasis for actual use. In addition, the user is charged for any "extras"such as (but not limited to) printing, scanning or modem use. Anothermethod of charging for computer time is by selling blocks of time (i.e.time intervals) for a set price. A user's running time would then becounted down from the time interval (i.e. one hour).

From block 466, processing moves to decision block 472 where it isdetermined whether computer use of PC 400 is set to charge based on aper minute basis or a time interval basis. If set to charge on a perminute basis, processing moves to block 470 where billing is calculatedbased on time used in minutes. Other charges such as (but not limitedto) the number of copies which were made by the user, the number ofscans made by the user and related uses of peripheral devices isdetermined. If modem 420 was used for outside communication, the amountof time for modem use (possibly including any on-line service charges)can be added. The amount of current use is then displayed on displaydevice 14. This amount could also be provided through speaker 22 ifspeech is enabled. From block 470 processing moves to block 484 in FIG.16B.

If computer use is to be charged on a per interval basis, processingmoves from decision block 472 to block 476 where a calculation similarto that made in block 470 is made except that the charges for computertime are determined on an interval basis instead of a per minute basis.From block 476, processing moves to decision block 484 in FIG. 16B.Referring now to FIG. 16B, decision block 484 determines if there is anytime remaining within the preset period. If there is time remaining, atext message is displayed on display 14 advising the user of the amountof time remaining from the time interval purchased by the user. If "MORETIME" button 412 is present controller 12, the user can also be advisedto press the "MORE TIME" button to allow additional time beyond thepreset interval. If speech is enabled, audio information can be providedthrough speaker 22 corresponding to the text message displayed ondisplay 14.

If the determination made in block 44 is negative, processing moves todecision block 48 where it is determined whether time has expired if thepay per interval mode has been set. If time has expired, processingmoves to block 490 where a text message is provided on display 14 thatthe session has concluded and a receipt is being printed. If the userhad earlier agreed to use computer system 400 without a receipt, noreceipt would be printed at this point. If speech is enabled, acorresponding audio message is provided via speaker 22.

From block 490, processing moves to block 492 where computer keyboard410 and peripheral devices 414, 416, 418 and 420 are disabled. PC 402can determine/ track and store transaction details and then send thetransaction details to controller 12 to be appended to the receipt, viaRS232 connection 426, for example. An itemized receipt 24 is thenprinted via receipt printer 20. Receipt printer 20 may alternatively bean external printer attached to PC 402. From block 492 transactionsubroutine 440 is exited. If the determination made in decision block 48is negative, processing moves to decision block 496 where it isdetermined whether printer 414 or printer 416 or scanner 418 have beenused. If yes, processing moves to block 498 where the counter on each ofthese peripheral devices is incremented corresponding to the number ofprints or scans made. Charges for use of these peripheral devices isthen displayed on display 14. This amount could also be provided throughspeaker 22 if speech has been enabled. Processing then moves to decisionblock 500.

In decision block 500 it is determined whether a user has requested useof modem 420. In an exemplary embodiment, this is determined bydetecting whether PC 402 has provided serial communication commandsthrough the RS232 communication port, while the modem is in use.Microprocessor 50 can monitor modem commands such as data carrier detect(DCD), ring indicator (RI), ready to send (RTS), clear to send (CTS),data terminal ready (DTR), data set ready (DSR) and reset. In anexemplary embodiment, these lines are monitored continuously, althoughit may not be necessary to monitor all lines for every application ofthe present invention. Commands, such as ATDT (followed by a phonenumber) or AT (followed by a recognized modem command) are alsomonitored, recognized and acted upon, or detected. Modem commands aremonitored or received depending upon the current state of the system.For example, when modem 420 is not in use, PC 402 sends the modemcommands directly to controller 12 to take an appropriate action. Whencontroller 12 attaches PC 402 to modem 420 directly, controller 12assumes a monitoring roll.

Next, processing moves to modem use subroutine 520 shown in FIG. 17. Ifno serial communication commands are detected, processing moves todecision block 502 where it is determined whether modem 420 is in use.In an exemplary embodiment, modem 420 use is checked by determiningwhether the "carrier detect" is active. If active, the "modem in use"flag is set. If the flag has been set, processing moves to block 504where the "modem in use" flag and "stop modem in use" timer are cleared.Processing then moves to block 506 where it is determined whether theuse has pressed the "END" button in keyboard 18. If the "END" button hasbeen pressed, processing moves back to block 490. If the "END" buttonhas not been pressed, processing moves to block 510 shown in FIG. 16C.

In decision block 510 shown in FIG. 16C, a determination is made whetherthe user is pressing "MORE TIME" button 412. If "MORE TIME" button isnot pressed processing moves to block 472 shown in FIG. 16A. If "MORETIME" button 412 is pressed, processing moves to decision block 512where it is determined whether the pay per interval mode is set. If notset, processing moves to decision block 472 shown in FIG. 16A. If thepay per interval mode has been set, processing moves to decision block514 where it is determined whether the authorized credit (or debit)limit will be exceeded by current usage. If current usage will exceedthe preauthorized limit, processing moves to block 516 where the user isadvised via display 14 that the user must swipe the credit/debit cardthrough magnetic card reader 16 for additional time on computer system400. If speech is enabled, this information can also be provided viaspeaker 22. If the intended use will not exceed the authorized limit,processing moves to block 518, where the user is advised that theremaining time has been extended. Processing then moves to decisionblock 472 shown in FIG. 16A.

FIG. 20 shows a block diagram for a computer system 400 where anexternal receipt printer 502 is used instead of an internal receiptprinter 20. PC 402 is connected to controller 12 via printer cableconnection 426, such as an RS232 serial connection. Controller 12contains an internal switching network for directing general computerprinting to an external PC printer 414 or printing of receipts toexternal receipt printer 500.

In the alternative, a single external printer 414 can be used for bothgeneral computer printing and receipt printing. In addition, theswitching network can be external to controller 12 (not shown) as wouldbe understood by those skilled in the art.

FIG. 21 shows a block diagram of a multi PC setup where the multiple PCs414 share a single printer 414 and a single external receipt printer500. In this case, a printer switch box 502 is used to direct print jobsto printer 414. Controller 12 acting controls printer switch box 502 todirect computer print jobs to printer 414 (or receipt printer 500) whenavailable. In this embodiment, Controller 12 directs a "printerunavailable" code to a PC 402 when printer 414 is in use by another PC402. As an alternative, all receipt printing can be sent to externalprinter 414, so that a separate external receipt printer is notnecessary.

There shown in FIG. 17 modem use subroutine 520. Modem use subroutine520 begins by determining whether the phone number sent by PC 402 is avalid, accepted phone number, in block 522. In an exemplary embodimentthis is determined by checking the telephone number entered by the useragainst a pressured list of accepted telephone numbers. The pressuredtelephone numbers can be stored in EEPROM 428 or other memory device. Ifthe telephone number is not an accepted phone number, processing movesto block 524 where the user is advised via display 14 that the telephonenumber is not allowed. Depending upon the software loaded on PC 402, theuser can be restricted to select from a list of telephone numbers. Ifspeech is enabled, a corresponding message can be provided via speaker22. From block 524, modem subroutine 520 is exited.

If the telephone number sent by PC 402 is a valid and accepted telephonenumber, processing moves from decision block 522 to block 528 where thetelephone number is dialed through modem 420. After the carrier detectsignal is received, a "modem in use" timer is started to determine theamount of time spent on-line for charging to the user. The "modem inuse" flag is also set in block 528.

Computer system 400 is operated by a user swiping a valid magnetic(credit/debit) card through magnetic card reader 16 located incontroller 12. Controller 12 contains microprocessor 50, which in anexemplary embodiment is a Zilog Z8. Microprocessor 50 activates modem420, which is located in controller 12 in an exemplary embodiment of thepresent invention.

In an exemplary embodiment, speech processor 75 is present and is alsoenabled by the swipe of a credit/debit card through magnetic card reader16.

Credit verification is obtained via modem 420 over telephone lines 40,in a similar fashion to that of system 10 shown in FIG. 1. Anappropriate approval is requested for a requested amount correspondingto the cost charged for the particular configuration of computer system400. For example, an authorization amount of $20.00 may be requestedwhich would allow a user to spend one hour of time operating computer402 (in pay per interval mode), spending 15 minutes on an on-lineservice without any additional charges by the on-line service and printten pages. The requested authorization amount is a predetermined dollaramount set by the operator of computer system 400. In anotherembodiment, a user may enter an authorization amount directly intokeyboard 18 for verification and approval by remote verificationlocation 46.

Microprocessor 50 also tracks the time PC 402 is in use. This amount canbe constantly updated or displayed on display 14. Display 14 can alsodisplay the time remaining if computer time has been purchased inintervals. If purchased by the minute, display 14 can show the elapsedtime. Transaction data information is stored in RAM memory 54 shown inFIG. 14.

When computer 402 sends data to printer 414 or 416 or receives data fromscanner 418, an electronic pulse counter 424 receives data from thecorresponding peripheral device corresponding to the number ofprints/scans which have been made. This information can also bedisplayed on display 14 advising the user of the costs incurred for useof a printing or scanning device.

When a user is connected to an on-line service through modem 420,microprocessor 50 obtains the dialing and modem operation parametersfrom pressured data in EEPROM 428 and/or ROM 56. Microprocessor 50tracks the on-line time which can also be displayed on display 14 withthe other information. As previously noted, transaction data is storedin RAM 54. Storing, tracking, requesting and batching of transactioninformation is carried out for computer system 400 in a similar manneras previously was described with respect to copier.

FIG. 18 shows an exemplary prepaid card dispensing system 450. System450 dispenses prepaid cards and/or encodes prepaid cards using a creditcard as the source of payment.

Controller 12 used in prepaid card dispensing system 450 is similar infunction to controller 12 used in system 10. Controller 12 includes areceipt printer 10 for printing receipts 24, speaker 22 for audiooutput, card reader 16 for input of magnetic card data from a creditcard or bank issued debit card and text display screen 14 for displayingtext. Controller 12 also includes a keypad 18 which may include a lesseror greater number of keys than keypad 18 shown in system 10. forexample, a "MORE MONEY" key 452 may be included in keypad 18 orseparately in controller 12 (as shown) for increasing the prepaid amountbeing encoded on a prepaid card. MORE MONEY key 452 may be a single key(to increment a predetermined dollar amount) or a keypad (to enter aspecific dollar amount) or set of keys (such as two keys, each with aspecified dollar amount increment). In an exemplary embodiment,

Controller 12 is connected to a prepaid card encoding/dispensing machine454 via electrical connection line 451. Prepaid card encoding/dispensingmachine 454 contains equipment, such as a magnetic card stripreader/writer, to encode a new or existing prepaid card 456 with adesired prepaid amount (an amount of credit which is debited when usedin a vending machine such as a photocopier). Prepaid cardencoding/dispensing machine 454 will typically include an opening 462for dispensing a new prepaid card 464 and/or encoding a user's existingprepaid card 464 with a prepaid amount. It should be understood thatalthough a single opening 462 is shown in FIG. 18, separate openings maybe provided, one each for dispensing new prepaid cards and encodingexisting prepaid cards, respectively. In order to encode an existingprepaid card 464 with a desired prepaid amount.

Prepaid card encoding/dispensing machine 454 may also include a currencyacceptor 456. Currency acceptor 456 may have either or both a coinacceptor 458 and a bill acceptor 460. An exemplary embodiment of thepresent invention is adaptable to an existing prepaid cardencoding/dispensing machines 454 which is already fitted with a currencyacceptor 456.

When connected to a prepaid card encoding/dispensing machine 454,controller 12 provides control signals which correspond to the controlsignals which are generated when currency is used in currency acceptor456. For some prepaid card encoding/decoding machines, the controlsignals may be digital data which are sent and received. Other machinesmay use control signals which are generated by actuating a relay (notshown). In this case, controller 12 provides a voltage signalcorresponding to the voltage signal which is put on line when the relayis actuated. In a system which actuates a relay to provide a controlsignal a predetermined number of pulses correspond to a dollar amount tobe encoded on a prepaid card. For example, each pulse may correspond toanother dollar encoded on the prepaid card. The total dollar amount isthe cumulative amount of pulses. Another system may use a single pulseto represent 25 cents, with four pulses representing a dollar.

To take into account the different types of machines and pulse coding,controller 12 in an exemplary embodiment contains a memory for storingthe pulse codes for a variety of prepaid card encoding/dispensingmachines 454. Thus, the operation of controller 12 for this embodimenthas some similarities to the operation of controller 12 attached to acopy machine 28 (see FIG. 1), in that pulse codes are generated tooperate the respective vending device which is attached. Controller 12can also interpret the pulse codes of a prepaid card encoding/dispensingmachine 454 by monitoring the pulse codes over a period of time andcomparing the reading to a listing of pulse codes stored in memory.

In an exemplary embodiment, an operator works interactively with acontroller 12 connected to a prepaid card encoding/dispensing machine454 to verify the amount, if any, that is being encoded on a prepaidcard 464 in response to operator input at controller 12.

FIG. 19 shows a flow chart 494 illustrating the operation of system 450.

The process begins with reference to block 470 when the pulse/dollarcount is retrieved from a memory location in controller 12. Thepulse/dollar count is the number of pulses representing a dollar amountfor the particular prepaid card encoding/dispensing machine 454 which isconnected to controller 12. A counter, activated by MORE MONEY key 452is cleared for the new transaction.

The next step in the process is to add a fixed fee to prepaid card 464.In an exemplary embodiment, an initial minimum amount may be set forencoding prepaid card 464. Pressing the MORE MONEY key 452 incrementsthis amount by a second predetermined amount. The predetermined amountsare set by the operator and may be changed remotely over communicationline 40. The appropriate number of pulse codes are generated to encode aprepaid card 464 with the specified dollar amount requested by the user.For example, if the initial amount is two dollars and each pulsecorresponds to one dollar, two pulses would be initially sent to encodetwo dollars onto prepaid card 464. Each subsequent depression of MOREMONEY KEY 452 adds an additional dollar to prepaid cash 464. In a systemusing relays, the relay is opened and closed the appropriate number oftimes to control encoding of prepaid card 464. For some applications, itmay be necessary to translate or convert the control signals to providea desired transaction. For example, a prepaid card dispensing/encodingmachine 454 which dispenses prepaid cards for use with photocopiers mayencode/dispense prepaid cards with a specified number of copies insteadof a specified dollar amount. If a user entered a specified dollaramount into a controller 12, controller 12 would translate the dollaramount into a corresponding number of copies and send out theappropriate control signals (i.e. pulse codes) to store thecorresponding number of copies on a prepaid card 464.

Next, at block 474, a determination is made regarding whether a time outhas occurred. A time out occurs if there is no activity for a presetamount of time. In an exemplary embodiment, the preset amount of time isapproximately 10 seconds. If a timeout has occurred, a speech message isbroadcast thorough speaker 22 (if speech is enabled) that a receipt isbeing printed. This message may also be displayed on display 14 as atext message. As shown at block 478, the transaction is completed atthis point. The user then removes the prepaid card from opening 462 anda receipt 24 from receipt printer 20.

If a time out has not occurred at block 474, a determination is made atblock 480 regarding whether MORE MONEY key 452 has been pressed. If MOREMONEY key 452 has been pressed, a counter is incremented in block 484reflecting that an additional prepaid amount has been requested by theuser. In block 486, a memory look up takes place to receive a dollaramount which corresponds to the count in the MORE MONEY press counter.This can be accomplished as a memory look up or as a calculation. Next,as shown in block 488, the Pulse per Dollar count is obtained frommemory. The pulse per dollar amount is the number of pulses for theparticular card encoding/dispensing machine 454 which corresponds to apredetermined dollar amount (i.e. one dollar). In block 490 the new saletotal is calculated and the total is saved to RAM memory. This amountmay be displayed on display 14 or output as speech through speaker 22 asa convenience to the user. Prepaid card 464 is encoded with the newdollar amount as shown in block 492. Following the update of prepaidcard 464, processing returns to block 474 to determine if a time out hasoccurred.

If it is determined that MORE MONEY key 452 is not pressed, adetermination is made at block 482 regarding whether a maximumtransaction amount has been reached. If a maximum transaction amount hasbeen reached, processing moves to block 476, prior to termination inblock 478. If a maximum dollar amount has not been reached, processingcontinues at block 474.

The operation of system 450 for obtaining credit card authorization,determining if maintenance is necessary and providing operationstatistics (i.e. number of vends) is described with respect to FIGS. 3through 10. These operations are substantially identical to those for acontroller 12 connected to a copy machine 28, with certain differencesin the information provided which may be different for a copy machine 28as compared to a prepaid card encoding/dispensing machine 454 as will beunderstood by those skilled in the art.

FIG. 22 shows a schematic diagram of a pulse converter circuit 504 whichis used in an exemplary embodiment to generate a pulse when controller12 is connected to a vending device such as a copier 28, prepaid cardencoding/dispensing machine 454, printer 414 or a microfiche machine(not shown). Pulse converter circuit 504 provides an approximately 5volt output between outputs 530 and ground and 532 and ground. Pulseconverter circuit 504 is shown comprised of two circuits 534 and 536,each containing a line monitor 508.

Voltage divider network 506 serves to reduce current supplied to a firstline monitor 508. Line monitor 508 is an optically connectedinput/output circuit made by Quality Tech under part number MID400 in anexemplary embodiment. Line monitor 508 provides a high degree ofisolation between input and output used for counting copies and enablingand disabling controller 12. Depending on the application one or bothcircuits may be used.

When a pulse appears at one of the inputs 518, 520, 522, 524 or 526 ofvoltage divider network 506, the signal is passed along to the inputs ofthe first line monitor 508. If the voltage and current are sufficient todrive the input of line monitor 508, an output signal is generated,Diodes 510 and 512 protect line monitor 508 from over voltage or hightransient voltage situations which could damage the integrated circuitchip.

Circuit 536 operates similar to circuit 534. Capacitor 516 and resistor514 in circuit 536 replace voltage divider network 506 used in circuit534. When an AC voltage is placed across inputs 534, capacitor 516passes the AC voltage component applied to inputs 534 and regulates thecurrent flow. Voltage inputs in an exemplary embodiment can range from24 volts AC to 115 volts AC.

The current flow in an exemplary embodiment is approximately 10milliamps per 0.1 microfarads. Leakage current for particular capacitors516 can be obtained from the capacitor manufacturer. In an exemplaryembodiment, capacitor 516 is a 0.22 microfarad capacitor which providesapproximately 22 milliamps of current flow to a second line monitor 509(shown in circuit 2). Since capacitor 516 passes the AC voltagecomponent and blocks the DC voltage component, diodes 511 and 513 serveto clamp the voltage to approximately 5.1 volts.

Accordingly, when the pulse arrives at circuit 536, capacitor 516provides low current regulation and diodes 511 and 513 provide voltageregulation. Resistor 514 discharges capacitor 516 when the input pulseis removed.

While particular embodiments of the present invention are disclosedherein, it is not intended to limit the invention to such disclosure,and changes and modifications may be incorporated and embodied withinthe scope of the following claims:

What is claimed:
 1. A vending machine control system for controlling andmonitoring credit card transactions of a pre-existing vending machinewhich encodes prepaid cards, said pre-existing vending machine having acurrency acceptor and control interface lines for use in encoding saidprepaid cards, said vending machine control system comprising:a) meansfor reading magnetically stored information from a credit card; b) meansfor obtaining an authorization amount for said transactions for saidcredit card from a credit verification source external to said vendingmachine; c) means for storing said authorization amount; d) means forselecting a prepaid amount to be encoded on a prepaid card; e) means fordetermining whether a prepaid amount selected with said means forselecting is below a maximum allowed transaction amount; f) means forcontrolling the encoding of a prepaid card in response to said means forselecting; g) means for storing transaction information corresponding tosaid operation of said vending machine and said magnetic informationfrom said credit card; h) means for housing elements a) through g)separately from said pre-existing vending machine; and i) means forconnecting said vending machine control system to said pre-existingvending machine at a point on said control interface lines which isoperationally related to said currency acceptor such that saidpre-existing vending machine can be operated with either currency orsaid credit card.
 2. A vending machine control system in accordance withclaim 1 wherein said means for selecting a prepaid amount to be encodedon a prepaid card comprises a user operated keypad containing at leastone key which increments said prepaid amount by a predetermined amount.3. A vending machine control system in accordance with claim 1 whereinsaid means for selecting a prepaid amount to be encoded on a prepaidcard comprises and an initial prepaid amount which is predetermined forencoding on said prepaid card when said vending machine is activated bysaid user.
 4. A vending machine control system in accordance with claim1 wherein said means for determining whether a prepaid amount is below amaximum allowed transaction amount comprises a memory which stores amaximum transaction amount a means for reading said maximum transactionamount from said memory and comparing said maximum transaction amount toa prepaid amount selected by said user.
 5. A vending machine controlsystem in accordance with claim 4 wherein said maximum transactionamount is obtained from a credit verification source when said user usesa credit card to purchase said prepaid amount for said prepaid card. 6.A vending machine control system in accordance with claim 1 wherein saidmeans for controlling the encoding of a prepaid card comprises:a) afirst control line connected to a relay at a first end and a magneticcard encoding device at a second end wherein said relay is operable toprovide a control pulse in response to an operation of said vendingmachine by a user; and b) a second control line interfaced to said firstcontrol line at a first end of said second control line and a controllerat a second end of said second control line wherein said controllerproduces pulses substantially identical to the control pulses producedby said relay for controlling a prepaid amount for encoding on a prepaidcard.
 7. A vending machine control system in accordance with claim 1further comprising disabling means between said vending machine and saidmeans for controlling the encoding of a prepaid card which preventsoperation of said vending machine from operating when a predeterminedevent occurs.
 8. A vending machine control system in accordance withclaim 7 wherein said disabling means sends a disabling control signal tosaid vending machine in response to a disabling input signal from saidmeans for controlling the encoding of a prepaid card.
 9. The system inaccordance with claim 1 further comprising accounting means, within saidvending machine control system, for monitoring transactions of saidpre-existing vending machine by way of said connection to said controlinterface lines.
 10. A vending machine control system in accordance withclaim 9 wherein said accounting means monitors all credit card andnon-credit card transactions of said pre-existing vending machine by wayof said connection to said control interface lines.
 11. The system ofclaim 1, wherein said means for obtaining an authorization amountobtains said authorization amount without causing a charge to occuragainst said credit card, said vending machine control system furthercomprising means for subsequently causing charges to occur,respectively, to a plurality of earlier used credit cards in a singlebatch operation.
 12. The system of claim 1, wherein the currencyacceptor generates pulse codes to encode a prepaid card with a monetaryvalue, said vending machine control system further comprising memorymeans for storing a plurality of pulses codes each for use with aplurality of different pre-existing vending machines, respectively, suchthat the pulse codes generated by said vending machine control systemare compatible with said pre-existing vending machine to which saidvending machine control system is connected.
 13. The system of claim 1,wherein said currency acceptor generates pulse codes to encode a prepaidcard with a monetary value, wherein said means for controlling theencoding of said prepaid card generates pulses substantially identicalto the pulses generated by said currency acceptor for controlling theencoding of said prepaid card.
 14. A method for controlling apre-existing vending machine to encode a prepaid card, said pre-existingvending machine includes a magnetic card writing device, comprising thesteps of:a) retrofitting a controller, separate from said pre-existingvending machine, to said pre-existing vending machine, wherein saidcontroller includes a memory for storing a plurality of pulse per dollarcounts for a plurality of different pre-existing vending machines; b)obtaining a pulse per dollar count from the memory which is compatiblewith said pre-existing vending machine; c) generating, based on saidobtained pulse per dollar count, a pulse code for transmission to saidmagnetic card writing device within said pre-existing vending machine;d) transmitting said pulse code from said controller to saidpre-existing vending machine; e) receiving said pulse code at saidpre-existing vending machine; and f) writing a prepaid amount to amagnetic card based on said received pulse code.
 15. A method forcontrolling and monitoring credit card transactions and operation of apre-existing vending machine for encoding prepaid cards, saidpre-existing vending machine having a currency acceptor and controlinterface lines such that said currency acceptor generates pulses alongsaid interface control lines to encode a value on a prepaid card,comprising the steps of:a) retrofitting a controller, separate from saidpre-existing vending machine, to said pre-existing vending machine byway of a connection to said control interface lines at a pointoperationally related to said currency acceptor; b) reading, at saidseparate controller, magnetically stored information from a credit card;c) obtaining, at said separate controller, an approval code for aspecified authorization amount for said transactions for said creditcard from a credit verification source external to said separatecontroller and said vending machine; d) storing said approval code atsaid separate controller; e) selecting, at said separate controller, aprepaid amount to be encoded on a prepaid card; f) determining, at saidseparate controller, whether said selected prepaid amount selected isbelow a maximum allowed transaction amount; g) controlling, by saidseparate controller, the encoding of a prepaid card in response to saidselected prepaid amount; and h) storing transaction informationcorresponding to said operation of said vending machine and saidmagnetic information from said credit card.
 16. The method of claim 15,wherein the step of obtaining an authorization amount obtains theauthorization amount without causing a charge to occur against saidcredit card, said method further comprising the step of subsequentlycausing charges to occur, respectively, to a plurality of earlier usedcredit cards in a single batch operation.
 17. The method of claim 15,wherein the currency acceptor generates pulse codes to encode a prepaidcard with a monetary value, said method further comprising the step ofstoring a plurality of pulse codes each for use with a plurality ofdifferent pre-existing vending machines, respectively, such that thepulse codes generated by said vending machine control system arecompatible with the pre-existing vending machine to which said vendingmachine control system is connected.
 18. The method of claim 15, whereinsaid currency acceptor generates pulse codes to encode a prepaid cardwith a monetary value, wherein the step of controlling the encoding of aprepaid card generates pulses substantially identical to the pulsesgenerated by said currency acceptor for controlling the encoding of theprepaid card.